19 research outputs found

    Task-based Augmented Contour Trees with Fibonacci Heaps

    Full text link
    This paper presents a new algorithm for the fast, shared memory, multi-core computation of augmented contour trees on triangulations. In contrast to most existing parallel algorithms our technique computes augmented trees, enabling the full extent of contour tree based applications including data segmentation. Our approach completely revisits the traditional, sequential contour tree algorithm to re-formulate all the steps of the computation as a set of independent local tasks. This includes a new computation procedure based on Fibonacci heaps for the join and split trees, two intermediate data structures used to compute the contour tree, whose constructions are efficiently carried out concurrently thanks to the dynamic scheduling of task parallelism. We also introduce a new parallel algorithm for the combination of these two trees into the output global contour tree. Overall, this results in superior time performance in practice, both in sequential and in parallel thanks to the OpenMP task runtime. We report performance numbers that compare our approach to reference sequential and multi-threaded implementations for the computation of augmented merge and contour trees. These experiments demonstrate the run-time efficiency of our approach and its scalability on common workstations. We demonstrate the utility of our approach in data segmentation applications

    The Topology ToolKit

    Full text link
    This system paper presents the Topology ToolKit (TTK), a software platform designed for topological data analysis in scientific visualization. TTK provides a unified, generic, efficient, and robust implementation of key algorithms for the topological analysis of scalar data, including: critical points, integral lines, persistence diagrams, persistence curves, merge trees, contour trees, Morse-Smale complexes, fiber surfaces, continuous scatterplots, Jacobi sets, Reeb spaces, and more. TTK is easily accessible to end users due to a tight integration with ParaView. It is also easily accessible to developers through a variety of bindings (Python, VTK/C++) for fast prototyping or through direct, dependence-free, C++, to ease integration into pre-existing complex systems. While developing TTK, we faced several algorithmic and software engineering challenges, which we document in this paper. In particular, we present an algorithm for the construction of a discrete gradient that complies to the critical points extracted in the piecewise-linear setting. This algorithm guarantees a combinatorial consistency across the topological abstractions supported by TTK, and importantly, a unified implementation of topological data simplification for multi-scale exploration and analysis. We also present a cached triangulation data structure, that supports time efficient and generic traversals, which self-adjusts its memory usage on demand for input simplicial meshes and which implicitly emulates a triangulation for regular grids with no memory overhead. Finally, we describe an original software architecture, which guarantees memory efficient and direct accesses to TTK features, while still allowing for researchers powerful and easy bindings and extensions. TTK is open source (BSD license) and its code, online documentation and video tutorials are available on TTK's website

    Task-based Augmented Reeb Graphs with Dynamic ST-Trees

    Get PDF
    International audienceThis paper presents, to the best of our knowledge, the first parallel algorithm for the computation of the augmented Reeb graph of piecewise linear scalar data. Such augmented Reeb graphs have a wide range of applications , including contour seeding and feature based segmentation. Our approach targets shared-memory multi-core workstations. For this, it completely revisits the optimal, but sequential, Reeb graph algorithm, which is capable of handing data in arbitrary dimension and with optimal time complexity. We take advantage of Fibonacci heaps to exploit the ST-Tree data structure through independent local propagations, while maintaining the optimal, linearithmic time complexity of the sequential reference algorithm. These independent propagations can be expressed using OpenMP tasks, hence benefiting in parallel from the dynamic load balancing of the task runtime while enabling us to increase the parallelism degree thanks to a dual sweep. We present performance results on triangulated surfaces and tetrahedral meshes. We provide comparisons to related work and show that our new algorithm results in superior time performance in practice, both in sequential and in parallel. An open-source C++ implementation is provided for reproducibility

    Viscous Fingering: A Topological Visual Analytic Approach

    Get PDF
    International audienceWe present a methodology to analyze and visualize an ensemble of finite pointset method (FPM) simulations that model the viscous fingering process of salt solutions inside water. In course of the simulations the solutions form structures with increased salt concentration called viscous fingers. These structures are of primary interest to domain scientists as it is not clear when and where viscous fingers appear and how they evolve. To explore the aleatoric uncertainty embedded in the simulations we analyze an ensemble of simulation runs which differ due to stochastic effects. To detect and track the viscous fingers we derive a voxel volume for each simulation where fingers are identified as subvolumes that satisfy geometrical and topological constraints. Properties and the evolution of fingers are illustrated through tracking graphs that visualize when fingers form, dissolve, merge, and split. We provide multiple linked views to compare, browse, and analyze the ensemble in real-time. Fig. 1: Detail view of our visualization tool consisting of the 3D rendering of viscous fingers (left), and the tracking graph showing their evolution (right)

    Calcul Haute Performance pour l’Analyse Topologique de Données par Ensembles de Niveaux

    No full text
    Topological Data Analysis requires efficient algorithms to deal with the continuously increasing size and level of details of data sets. In this manuscript, we focus on three fundamental topological abstractions based on level sets: merge trees, contour trees and Reeb graphs. We propose three new efficient parallel algorithms for the computation of these abstractions on multi-core shared memory workstations. The first algorithm developed in the context of this thesis is based on multi-thread parallelism for the contour tree computation. A second algorithm revisits the reference sequential algorithm to compute this abstraction and is based on local propagations expressible as parallel tasks. This new algorithm is in practice twice faster in sequential than the reference algorithm designed in 2000 and offers one order of magnitude speedups in parallel. A last algorithm also relying on task-based local propagations is presented, computing a more generic abstraction: the Reeb graph. Contrary to concurrent approaches, these methods provide the augmented version of these structures, hence enabling the full extend of level-set based analysis. Algorithms presented in this manuscript result today in the fastest implementations available to compute these abstractions. This work has been integratedinto the open-source platform: the Topology Toolkit (TTK).L’analyse de données topologique nécessite des algorithmes de plus en plus efficaces pour être capable de traiter des jeux de données dont la taille et le niveau de détail augmente continûment. Dans cette thèse, nous nous concentrons sur trois abstractions topologiques fondamentales dérivées des ensembles de niveaux : l’arbre de jointure, l’arbre de contour et le graphe de Reeb. Nous proposons trois nouveaux algorithmes parallèles efficaces pour leur calcul sur des stations de travail composées de processeurs multi-cƓur en mémoire partagée. Le premier algorithme élaboré durant cette thèse se base sur du parallélisme multi-thread pour le calcul de l’arbre de contour. Une seconde approche revisite l’algorithme séquentiel de référence pour le calcul de cette structure et se base sur des propagations locales exprimables en tâches parallèles. Ce nouvel algorithme est en pratique deux fois plus rapide en séquentiel que l’algorithme de référence élaboré en 2000 et offre une accélération d’un ordre de grandeur en parallèle. Un dernier algorithme basé sur une approche locale par tâches est également présenté pour une abstraction plus générique : le graphe de Reeb. Contrairement aux approches concurrentes, nos algorithmes construisent les versions augmentées de ces structures, permettant de supporter l’ensemble des applications pour l’analyse de données par ensembles de niveaux. Les méthodes présentées dans ce manuscrit ont donné lieu à des implémentations qui sont les plus rapides parmi celles disponibles pour le calcul de ces abstractions. Ce travail a été intégré à la bibliothèque libre : Topology Toolkit (TTK)

    Calcul haute performance pour l'analyse topologique de données par ensembles de niveaux

    No full text
    Topological Data Analysis requires efficient algorithms to deal with the continuously increasing size and level of details of data sets. In this manuscript, we focus on three fundamental topological abstractions based on level sets: merge trees, contour trees and Reeb graphs. We propose three new efficient parallel algorithms for the computation of these abstractions on multi-core shared memory workstations. The first algorithm developed in the context of this thesis is based on multi-thread parallelism for the contour tree computation. A second algorithm revisits the reference sequential algorithm to compute this abstraction and is based on local propagations expressible as parallel tasks. This new algorithm is in practice twice faster in sequential than the reference algorithm designed in 2000 and offers one order of magnitude speedups in parallel. A last algorithm also relying on task-based local propagations is presented, computing a more generic abstraction: the Reeb graph. Contrary to concurrent approaches, these methods provide the augmented version of these structures, hence enabling the full extend of level-set based analysis. Algorithms presented in this manuscript result today in the fastest implementations available to compute these abstractions. This work has been integrated into the open-source platform: the Topology Toolkit (TTK).L'analyse de donnĂ©es topologique nĂ©cessite des algorithmes de plus en plus efficaces pour ĂȘtre capable de traiter des jeux de donnĂ©es dont la taille et le niveau de dĂ©tail augmente continĂ»ment. Dans cette thĂšse, nous nous concentrons sur trois abstractions topologiques fondamentales dĂ©rivĂ©es des ensembles de niveaux : l'arbre de jointure, l'arbre de contour et le graphe de Reeb. Nous proposons trois nouveaux algorithmes parallĂšles efficaces pour leur calcul sur des stations de travail composĂ©es de processeurs multi-cƓur en mĂ©moire partagĂ©e. Le premier algorithme Ă©laborĂ© durant cette thĂšse se base sur du parallĂ©lisme multi-thread pour le calcul de l'arbre de contour. Une seconde approche revisite l'algorithme sĂ©quentiel de rĂ©fĂ©rence pour le calcul de cette structure et se base sur des propagations locales exprimables en tĂąches parallĂšles. Ce nouvel algorithme est en pratique deux fois plus rapide en sĂ©quentiel que l'algorithme de rĂ©fĂ©rence Ă©laborĂ© en 2000 et offre une accĂ©lĂ©ration d'un ordre de grandeur en parallĂšle. Un dernier algorithme basĂ© sur une approche locale par tĂąches est Ă©galement prĂ©sentĂ© pour une abstraction plus gĂ©nĂ©rique : le graphe de Reeb. Contrairement aux approches concurrentes, nos algorithmes construisent les versions augmentĂ©es de ces structures, permettant de supporter l'ensemble des applications pour l'analyse de donnĂ©es par ensembles de niveaux. Les mĂ©thodes prĂ©sentĂ©es dans ce manuscrit ont donnĂ© lieu Ă  des implĂ©mentations qui sont les plus rapides parmi celles disponibles pour le calcul de ces abstractions. Ce travail a Ă©tĂ© intĂ©grĂ© Ă  la bibliothĂšque libre : Topology Toolkit (TTK)

    High performance level-set based topological data analysis

    No full text
    L'analyse de donnĂ©es topologique nĂ©cessite des algorithmes de plus en plus efficaces pour ĂȘtre capable de traiter des jeux de donnĂ©es dont la taille et le niveau de dĂ©tail augmente continĂ»ment. Dans cette thĂšse, nous nous concentrons sur trois abstractions topologiques fondamentales dĂ©rivĂ©es des ensembles de niveaux : l'arbre de jointure, l'arbre de contour et le graphe de Reeb. Nous proposons trois nouveaux algorithmes parallĂšles efficaces pour leur calcul sur des stations de travail composĂ©es de processeurs multi-cƓur en mĂ©moire partagĂ©e. Le premier algorithme Ă©laborĂ© durant cette thĂšse se base sur du parallĂ©lisme multi-thread pour le calcul de l'arbre de contour. Une seconde approche revisite l'algorithme sĂ©quentiel de rĂ©fĂ©rence pour le calcul de cette structure et se base sur des propagations locales exprimables en tĂąches parallĂšles. Ce nouvel algorithme est en pratique deux fois plus rapide en sĂ©quentiel que l'algorithme de rĂ©fĂ©rence Ă©laborĂ© en 2000 et offre une accĂ©lĂ©ration d'un ordre de grandeur en parallĂšle. Un dernier algorithme basĂ© sur une approche locale par tĂąches est Ă©galement prĂ©sentĂ© pour une abstraction plus gĂ©nĂ©rique : le graphe de Reeb. Contrairement aux approches concurrentes, nos algorithmes construisent les versions augmentĂ©es de ces structures, permettant de supporter l'ensemble des applications pour l'analyse de donnĂ©es par ensembles de niveaux. Les mĂ©thodes prĂ©sentĂ©es dans ce manuscrit ont donnĂ© lieu Ă  des implĂ©mentations qui sont les plus rapides parmi celles disponibles pour le calcul de ces abstractions. Ce travail a Ă©tĂ© intĂ©grĂ© Ă  la bibliothĂšque libre : Topology Toolkit (TTK).Topological Data Analysis requires efficient algorithms to deal with the continuously increasing size and level of details of data sets. In this manuscript, we focus on three fundamental topological abstractions based on level sets: merge trees, contour trees and Reeb graphs. We propose three new efficient parallel algorithms for the computation of these abstractions on multi-core shared memory workstations. The first algorithm developed in the context of this thesis is based on multi-thread parallelism for the contour tree computation. A second algorithm revisits the reference sequential algorithm to compute this abstraction and is based on local propagations expressible as parallel tasks. This new algorithm is in practice twice faster in sequential than the reference algorithm designed in 2000 and offers one order of magnitude speedups in parallel. A last algorithm also relying on task-based local propagations is presented, computing a more generic abstraction: the Reeb graph. Contrary to concurrent approaches, these methods provide the augmented version of these structures, hence enabling the full extend of level-set based analysis. Algorithms presented in this manuscript result today in the fastest implementations available to compute these abstractions. This work has been integrated into the open-source platform: the Topology Toolkit (TTK)

    Task-based Augmented Merge Trees with Fibonacci Heaps

    No full text
    International audienceThis paper presents a new algorithm for the fast, shared memory multi-core computation of augmented merge trees on triangulations. In contrast to most existing parallel algorithms, our technique computes augmented trees. This augmentation is required to enable the full extent of merge tree based applications, including data segmentation. Our approach completely revisits the traditional, sequential merge tree algorithm to re-formulate the computation as a set of independent local tasks based on Fibonacci heaps. This results in superior time performance in practice, in sequential as well as in parallel thanks to the OpenMP task runtime. In the context of augmented contour tree computation, we show that a direct usage of our merge tree procedure also results in superior time performance overall, both in sequential and parallel. We report performance numbers that compare our approach to reference sequential and multi-threaded implementations for the computation of augmented merge and contour trees. These experiments demonstrate the run-time efficiency of our approach as well as its scalability on common workstations. We demonstrate the utility of our approach in data segmentation applications. We also provide a lightweight VTK-based C++ implementation of our approach for reproduction purposes

    The Topology ToolKit

    No full text

    Topological Data Analysis Made Easy with the Topology ToolKit

    No full text
    International audienceThis tutorial presents topological methods for the analysis and visualization of scientific data from a user’s perspective, with the Topology ToolKit (TTK), a recently released open-source library for topological data analysis. Topological methods have gained considerably in popularity and maturity over the last twenty years and success stories of established methods have been documented in a wide range of applications (combustion, chemistry, astrophysics, material sciences, etc.) with both acquired and simulated data, in both post-hoc and in-situ contexts. While reference textbooks have been published on the topic, no tutorial at IEEE VIS has covered this area in recent years, and never at a software level and from a user’s point-of-view. This tutorial fills this gap by providing a beginner’s introduction to topological methods for practitioners, researchers, students, and lecturers. In particular, instead of focusing on theoretical aspects and algorithmic details, this tutorial focuses on how topological methods can be useful in practice for concrete data analysis tasks such as segmentation, feature extraction or tracking. The tutorial describes in detail how to achieve these tasks with TTK. First, after an introduction to topological methods and their application in data analysis, a brief overview of TTK’s main entry point for end users, namely ParaView, will be presented. Second, an overview of TTK’s main features will be given. A running example will be described in detail, showcasing how to access TTK’s features via ParaView, Python, VTK/C++, and C++. Third, hands-on sessions will concretely show how to use TTK in ParaView for multiple, representative data analysis tasks. Fourth, the usage of TTK will be presented for developers, in particular by describing several examples of visualization and data analysis projects that were built on top of TTK. Finally, some feedback regarding the usage of TTK as a teaching platform for topological analysis will be given. Presenters of this tutorial include experts in topological methods, core authors of TTK as well as active users, coming from academia, labs, or industry. A large part of the tutorial will be dedicated to hands-on exercises and a rich material package (including TTK pre-installs in virtual machines, code, data, demos, video tutorials, etc.) will be provided to the participants. This tutorial mostly targets students, practitioners and researchers who are not experts in topological methods but who are interested in using them in their daily tasks. We also target researchers already familiar to topological methods and who are interested in using or contributing to TTK
    corecore